iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 23
0
Software Development

從Java進入AWS部署RESTful API的心路歷程系列 第 23

Day23-概論(十二)DynamoDB 的 Java 註釋

  • 分享至 

  • xImage
  •  

DynamoDB 的 Java 註釋

本篇稍微帶過DynamoDB提供的資料表與屬性註釋特性我想補充的部分,完整的說明可以看上面的AWS文件連結,部分註釋在之後的實作環節也會使用

@DynamoDBAttribute

映射至DynamoDB的屬性名稱,預設為同名屬性,建議使用同名的時候可省略此註釋。但是當名稱不同時,如主索引屬性或之前提過的GSI屬性多載設計方式,你可能想要在POJO這邊使用有意義的名稱時通常就會用到。

@DynamoDBAutoGeneratedKey

提供對於建立項目時自動新增UUID的註釋,個人覺得並不好用,主要因為下面幾點

  • 你可能想要自訂屬性ID的產生方式(不過也可以自訂一個GeneratedKey註釋就是了)
  • SDK實作的方式是當get方法取值時如果變數值為null時,則產生UUID並存入變數
  • 處理POJO時可能也會有自己判斷跟處理create/update項目的邏輯,這代表要看兩個不同地方的code邏輯才完整

@DynamoDBDocument

可以將相對靜態的屬性收合至單一屬性,不過就捨去對其內容的操作跟篩選的便利性

@DynamoDBHashKey

註釋主索引Partition Key

主索引屬性是必須要有的,將GSI屬性都註釋好的話,查詢時就只要實作POJO給值指定索引名稱就能用了,很方便

@DynamoDBRangeKey

註釋主索引Range Key

@DynamoDBIgnore

你不想要存入DynamoDB或無關的method都建議加上去,尤其是get/set/is開頭的

@DynamoDBIndexHashKey

註釋全域次要索引的Hash Key

@DynamoDBIndexRangeKey

註釋全域次要索引的Range Key

@DynamoDBTable

將POJO Class註釋其所儲存的Table,注意這是可以繼承的

@DynamoDBTypeConverted

自訂映射轉換,如果你用到SDK並未支援的Java變數類型

@DynamoDBTyped

覆寫標準屬性類型繫結的註釋

@DynamoDBVersionAttribute

註釋為樂觀鎖定需要的屬性


上一篇
Day22-概論(十一)DynamoDBMapper Class
下一篇
Day24-實作(七)Java DAO & DynamoDBMapper
系列文
從Java進入AWS部署RESTful API的心路歷程30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言